\usepackage{xcolor} % 颜色库，设置文字颜色

% 设置字体
\usepackage{fontspec}
\setmainfont{Times New Roman} % 默认英文字体为Times New Roman
% 注意使用了fontspec，不再支持pdfLaTeX，建议使用XeLaTeX

% 设置页边距
\usepackage{geometry}
\geometry{
  top         = 2.5cm,
  bottom      = 2.5cm,
  left        = 2.5cm,
  right       = 2.0cm,
  headsep     = 0.5cm,
  footskip    = 0.5cm,
}

% 添加基础信息存储指令
\newcommand{\initVar}[2]{ % 通用指令，初始化一个变量，并指定设置这个变量的命令
  \newcommand{#1}{} % 清空变量
  \ifdefined#2
    \renewcommand{#2}[1]{
      \renewcommand{#1}{##1}
    }
  \else
    \newcommand{#2}[1]{
      \renewcommand{#1}{##1}
    }
  \fi
}
% 用法：\initVar \varName \setVarCommandName

\initVar \varTitle      \title      % 标题
\initVar \varTitleEng   \titleEng   % 英文标题
\initVar \varAuthor     \author     % 作者
\initVar \varAuthorEng  \authorEng  % 英文作者
\initVar \varDate       \date       % 日期
\initVar \varAdviser    \adviser    % 导师
\initVar \varAdviserEng \adviserEng % 英文导师
\initVar \varCollege    \college    % 学院
\initVar \varCollegeEng \collegeEng % 英文学院
\initVar \varMajor      \major      % 专业
\initVar \varMajorEng   \majorEng   % 英文专业
\initVar \varID         \id         % 学号
\initVar \varGrade      \grade      % 年级

% 设置页眉页脚
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\textcolor[gray]{0.5}{\zihao{5} 四川大学本科毕业生论文}}
\fancyhead[R]{\textcolor[gray]{0.5}{\zihao{5} \varTitle}}
\fancypagestyle{plain}{}

% 启用PDF内书签生成（hyperref）
\usepackage[pdfborder={0 0 1}]{hyperref} % UTF8下无需打开CJKbookmarks

% 封面设置
\usepackage{array}
\newcommand{\makecover}{
  \thispagestyle{empty}
  \setcounter{page}{0}

  \vspace*{0cm}
  \centerline{\includegraphics[height=1.6cm]{./images/scu}}
  \vspace*{1.2cm}
  \centerline{\songti \zihao{1} \textbf{本科生毕业论文(学术论文)} } \par %skip bold,it's a hack and i dont know why
  \vspace*{1cm}
  \centerline{\includegraphics[height=3.5cm]{./images/logo}}
  \vspace*{0.5cm}
  \centerline{
  \begin{tabular}{ b{2cm} >{\centering\arraybackslash}b{8cm}}
  \songti \zihao{4} 题\hspace{1cm}目 & \textbf{\kaishu \zihao{4} \varTitle} \\[-3pt]
  \cline{2-2} \\[0.6cm]
  \songti \zihao{4} 学\hspace{1cm}院 & \textbf{\kaishu \zihao{4} \varCollege} \\[-3pt]
  \cline{2-2} \\[0.6cm]
  \songti \zihao{4} 专\hspace{1cm}业 & \textbf{\kaishu \zihao{4} \varMajor} \\[-3pt]
  \cline{2-2} \\[0.6cm]
  \songti \zihao{4} 学生姓名 & \textbf{\kaishu \zihao{4} \varAuthor} \\[-3pt]
  \cline{2-2} \\[0.6cm]
  \end{tabular}
  }
  \centerline{
  \begin{tabular}{p{2cm} >{\centering\arraybackslash}p{3cm} p{1cm} >{\centering\arraybackslash}p{3cm}}
  \songti \zihao{4} 学\hspace{1cm}号 & \textbf{\kaishu \zihao{4} \varID} & 
  \songti \zihao{4} 年级 & \textbf{\kaishu \zihao{4} \varGrade} \\[-3pt]
  \cline{2-2} \cline{4-4} \\[0.6cm]
  \end{tabular}
  }
  \centerline{
  \begin{tabular}{ b{2cm} >{\centering\arraybackslash}b{8cm}}
  \songti \zihao{4} 指导教师 & \textbf{\kaishu \zihao{4} \varAdviser} \\[-3pt]
  \cline{2-2}
  \end{tabular}
  }
  \vfill
  \centerline{\songti \zihao{3} 教务处制表}
  \centerline{\songti \zihao{3}\varDate}
  \clearpage
}

% 摘要设置
\initVar \varTempKeyword \setTempKeyword
\renewenvironment{abstract}[1]{
  \thispagestyle{plain}

  \vspace*{1cm}
  \centerline{\heiti \zihao{-2} \textbf{\varTitle}}
  \vspace{1cm}
  \centerline{\kaishu \zihao{4} \varMajor}
  \vspace{1cm}
  \centerline{\kaishu \zihao{4} 学生\hspace{0.4cm}\varAuthor \hspace{1cm} 指导教师\hspace{0.4cm}\varAdviser}
  \vspace{1.2cm}
  \kaishu \zihao{5}
  \textbf{[摘要]} \setTempKeyword{#1}
}{
  \par \textbf{[主题词]} \varTempKeyword \clearpage
}
\newenvironment{abstractEng}[1]{
  \thispagestyle{plain}
  
  \vspace*{1cm}
  \centerline{\addfontfeature{LetterSpace=-5}\zihao{3} \textbf{\varTitleEng}}
  \vspace{1cm}
  \centerline{\zihao{4} \varMajorEng}
  \vspace{1cm}
  \centerline{\zihao{4} Student:\varAuthorEng \hspace{1cm} Adviser:\varAdviserEng}
  \vspace{1.2cm}
  \zihao{5} 
  \textbf{[Abstract]} \setTempKeyword{#1}
}{
  \par \textbf{[Key Words]} \varTempKeyword \clearpage
}

% 设置行距
\usepackage{setspace}
\linespread{1.4} % 经验所得的值
% \setlength{\baselineskip}{20pt} % 直接设置行距为20磅，字号变动时可能出问题

% 设置标题深度的计数器
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}

% 各级标题格式
\ctexset{
  % 设置日期格式
  today = big,
  % 设置章节格式
  chapter = {
    beforeskip = -10pt,
    afterskip = 15pt,
    name = {,},
    number = \arabic {chapter},
    nameformat = \zihao{3} \bfseries \heiti,
    titleformat = \zihao{3} \bfseries \heiti
  },
  % 设置小节格式
  section = {
    beforeskip = 10pt,
    afterskip = 10pt,
    format = \raggedright,
    nameformat = \zihao{-3} \bfseries \heiti,
    titleformat = \zihao{-3} \bfseries \heiti
  },
  % 设置子小节格式
  subsection = {
    beforeskip = 0pt,
    afterskip = 1pt,
    format = \raggedright,
    nameformat = \zihao{4} \heiti,
    titleformat = \zihao{4} \heiti
  },
  % 设置子子小节格式
  subsubsection = {
    beforeskip = 0pt,
    afterskip = 1pt,
    format = \raggedright,
    nameformat = \zihao{-4} \heiti,
    titleformat = \zihao{-4} \heiti
  },
}
